Most modern computer software employs a graphical user interface (GUI) to convey information to and receive commands from users. The graphical user interface relies on a variety of graphical user interface elements or objects, including icons, text, drop-down menus, dialog boxes, toolbars, buttons, and the like. A user typically interacts with a graphical user interface by using a pointing device (e.g., a mouse) to position a pointer or cursor over an object and “clicking” on the object. An example of an operating system that provides a graphical user interface is the Microsoft WINDOWS operating system, which is manufactured and sold by Microsoft Corporation of Redmond, Wash.
Drop-down menus are used to organize numerous computer commands into major headings, which are displayed in a menu bar that typically appears along the top of a window. Each heading represents a menu that is displayed when the user clicks on the heading. This menu allows access to numerous commands that are listed in the drop down menu. A user may select a particular command by moving the pointing device to highlight the command and then pressing a mouse button to select the highlighted command. Thus, drop-down menus provide a space-efficient means for organizing and displaying numerous commands.
When a user selects a command from a drop-down menu, a dialog box is typically displayed. The dialog box is more generically called an options page since it provides the user with various options or settings, which are user definable. For example, the options page includes a variety of user interface elements that allow the user to customize or control the application to the user's liking.
Most users are familiar with option pages in client applications. For example, in Microsoft Word, option pages are used to control many aspects of a word processing document, such as the format of paragraphs, the paper size, the margins, etc. With the recent growth of networks, such as the Internet, the ability to accept user options are now becoming familiar for interaction with server computers. In such networking applications, option pages are typically used to allow a user to customize settings of applications stored on the server computer. For example, some Web sites allow each user to customize the content displayed when the user accesses the site. Such customization is implemented through an options page where the user is given options on topics of information (e.g., stocks, sports, travel, etc.) displayed whenever the user accesses the Web site. The user's customization settings may be stored on the client computer or the server computer. Whether stored on the client or server, cookies are typically stored on the client and are passed to the server when the user accesses the site. The server uses the cookies to access the customization settings and displays the customized Web page to the user.
In general, option pages are hard-coded into client applications. Consequently, the option pages cannot be changed without installing a new version of software onto the client computer. For some network-based applications, the hard coding of the option page is problematic. For example, a client application called “News Alert” periodically checks MSNBC.COM for new stories in topics that the user selected. If a new story is available in a selected topic, the client is notified. The user may then view a small abstract of the story and download the entire story, if desired. The set of stories the user can select from in News Alert changes regularly based on hot topics in the news. For example, if a presidential scandal erupts in the news, it is desirable to have an option in an options page that a user can select to view stories for that specific topic. However, with the option page hard-coded, the only way to provide the user with the new option is to download an updated version of the entire News Alert application to the client computer.
Other problems also occur because of the hard coding of option pages. Specifically, the code and resources needed to display the options page substantially increase the size of the client application. A larger client application takes longer for users to download from a server computer and requires more available storage on the client computer. Additionally, it is desirable for the server computer to be able to examine the user settings so that the users may be invited to change the settings based on current activities.
It is desirable, therefore, to provide a system and method wherein user options can be easily updated in a client application.